package proveedorPackage;

import java.util.List;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import modulos.AdmListaPrecios;
import modulos.AdmMateriaPrima;
import modulos.AdmRodamientos;
import modulos.AdmVentas;
import servicios.AdmServicios;
import entities.ListaDePrecios;
import entities.MateriaPrimaAPedirVO;
import entities.MateriaPrimaVO;
import entities.OrdenCompraCCVO;
import entities.Rodamiento;
import entities.RodamientoVO;

/**
 * Session Bean implementation class ProveedorBean
 */
@Stateless
public class ProveedorBean implements Proveedor {

	/**
	 * @uml.property  name="administradorRodamientos"
	 * @uml.associationEnd  readOnly="true"
	 */
	@EJB
	private AdmRodamientos administradorRodamientos;
	
	/**
	 * @uml.property  name="administradorListaDePrecios"
	 * @uml.associationEnd  readOnly="true"
	 */
	@EJB
	private AdmListaPrecios administradorListaDePrecios;
	
	/**
	 * @uml.property  name="administradorMateriaPrima"
	 * @uml.associationEnd  readOnly="true"
	 */
	@EJB
	private AdmMateriaPrima administradorMateriaPrima;
	
	/**
	 * @uml.property  name="admServicios"
	 * @uml.associationEnd  readOnly="true"
	 */
	@EJB
	private AdmServicios admServicios;
	/**
	 * @uml.property  name="admVentas"
	 * @uml.associationEnd  readOnly="true"
	 */
	@EJB
	private AdmVentas admVentas;
	
	@Override
	public Rodamiento nuevoRodamiento(RodamientoVO rodamiento) {
		Rodamiento rod = new Rodamiento(rodamiento);
		administradorRodamientos.nuevoRodamiento(rodamiento);
//		admServicios.enviarRodamientoWS(rod);
		return rod;
	}


	@Override
	public ListaDePrecios getListaDePrecios() {
		return administradorListaDePrecios.getListaDePrecios();
	}


	@Override
	public void nuevaListaDePrecios(ListaDePrecios lista) {
		administradorListaDePrecios.nuevaListaDePrecios(lista);
	}
	
	public List<MateriaPrimaVO> getMateriasPrima(){
		return administradorMateriaPrima.getMateriasPrima();
	}


	@Override
	public void venderRodamientos(OrdenCompraCCVO ordenCompraCCVO) {
		List<MateriaPrimaAPedirVO> listaMateriaPrimaAPedir = admVentas.venderRodamientos(ordenCompraCCVO);
		if(listaMateriaPrimaAPedir!=null && !listaMateriaPrimaAPedir.isEmpty()){
			if(admServicios.enviarPedidoMateriaPrima(listaMateriaPrimaAPedir))
				admServicios.enviarConfirmacionACC(ordenCompraCCVO);
			
		}else
			admServicios.enviarConfirmacionACC(ordenCompraCCVO);
	}
	
//    @PostConstruct
//    public void doSomestuffWithDb() {
//    	ListaDePrecios lista = new ListaDePrecios();
//    	lista.setVigenciaDesde("SSAS");
//    	lista.setVigenciaHasta("sasdasd");
//    	administradorListaDePrecios.nuevaListaDePrecios(lista);
//    	
//    }
	
    

}
